[INFO] fetching crate nemo-relay 0.3.0-beta.2...
[INFO] testing nemo-relay-0.3.0-beta.2 against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] extracting crate nemo-relay 0.3.0-beta.2 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate nemo-relay 0.3.0-beta.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate nemo-relay 0.3.0-beta.2
[INFO] tweaked toml for crates.io crate nemo-relay 0.3.0-beta.2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nemo-relay 0.3.0-beta.2 on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nemo-relay 0.3.0-beta.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197
[INFO] running `Command { std: "docker" "start" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.118
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling wasm-bindgen v0.2.118
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.118
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling typed-builder-macro v0.23.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling rand v0.9.3
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling typed-builder v0.23.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling openinference-semantic-conventions v0.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.118
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling js-sys v0.3.95
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling web-sys v0.3.95
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.68
[INFO] [stderr]    Compiling tonic-prost v0.14.5
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling nemo-relay v0.3.0-beta.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s
[INFO] running `Command { std: "docker" "inspect" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling opentelemetry v0.31.0
[INFO] [stderr]    Compiling openinference-semantic-conventions v0.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling js-sys v0.3.95
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling opentelemetry_sdk v0.31.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.68
[INFO] [stderr]    Compiling web-sys v0.3.95
[INFO] [stderr]    Compiling opentelemetry-http v0.31.0
[INFO] [stderr]    Compiling tonic-prost v0.14.5
[INFO] [stderr]    Compiling opentelemetry-proto v0.31.0
[INFO] [stderr]    Compiling opentelemetry-otlp v0.31.1
[INFO] [stderr]    Compiling nemo-relay v0.3.0-beta.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 56.83s
[INFO] running `Command { std: "docker" "inspect" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.71s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nemo_relay-60ea9de5d17d7b9b)
[INFO] [stdout] 
[INFO] [stdout] running 348 tests
[INFO] [stdout] test api::shared::tests::test_resolve_parent_uuid_snapshot_and_runtime_owner_helpers ... ok
[INFO] [stdout] test codec::anthropic::tests::anthropic_streaming_codec_assembles_tool_use_input_from_partial_json ... ok
[INFO] [stdout] test codec::anthropic::tests::anthropic_streaming_codec_assembles_text_response ... ok
[INFO] [stdout] test api::shared::tests::test_run_request_intercepts_with_codec_none_and_codec_paths ... ok
[INFO] [stdout] test codec::anthropic::tests::anthropic_streaming_codec_attaches_citations_to_text_blocks ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_invalid_json ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_minimal_response ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_extra_fields ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_full ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_litellm_cache_control_blocks_preserved ... ok
[INFO] [stdout] test codec::anthropic::tests::anthropic_streaming_codec_keeps_partial_json_when_unparseable ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_service_tier_and_parallel_tool_calls ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_stop_sequences ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_litellm_bridge_thinking_output_config_preserved_in_extra ... ok
[INFO] [stdout] test codec::anthropic::tests::anthropic_streaming_codec_preserves_unknown_block_types ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_system_array ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_full_response ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_tool_choice_any ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_tool_choice_auto ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_tool_choice_specific ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_vllm_system_array_ignores_non_text_blocks ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_request_vllm_tool_choice_none_and_extensions_preserved ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_extra_fields_preserved ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_finish_reason_end_turn ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_finish_reason_max_tokens ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_finish_reason_stop_sequence ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_finish_reason_tool_use ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_mcp_tool_use_not_in_tool_calls ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_usage_mapping ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_stop_sequence_value ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_max_tokens ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_multiple_text_blocks ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_thinking_blocks_in_api_specific ... ok
[INFO] [stdout] test codec::anthropic::tests::test_decode_response_tool_use_input_stored_as_json ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_round_trip_preserves_unmodeled_fields ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_stop_sequences ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_system_as_top_level ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_tool_choice_anthropic_format ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_tool_choice_any_to_anthropic ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_tools_with_input_schema ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_tool_choice_specific_to_anthropic ... ok
[INFO] [stdout] test codec::anthropic::tests::test_encode_writes_anthropic_modeled_controls ... ok
[INFO] [stdout] test codec::anthropic::tests::test_helper_and_error_paths_cover_remaining_anthropic_branches ... ok
[INFO] [stdout] test codec::openai_chat::tests::openai_chat_streaming_codec_assembles_text_response ... ok
[INFO] [stdout] test codec::openai_chat::tests::openai_chat_streaming_codec_assembles_tool_call_arguments_from_fragments ... ok
[INFO] [stdout] test codec::openai_chat::tests::openai_chat_streaming_codec_emits_null_content_when_only_tool_calls_streamed ... ok
[INFO] [stdout] test codec::openai_chat::tests::openai_chat_streaming_codec_handles_multiple_choices ... ok
[INFO] [stdout] test codec::openai_chat::tests::openai_chat_streaming_codec_skips_null_usage_chunks ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_full_response ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_invalid_json_type ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_minimal_response ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_extra_fields ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_full ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_max_completion_tokens ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_multimodal_image_url_parts ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_no_messages_key ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_request_openai_chat_typed_controls ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_api_specific_fields ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_cached_tokens ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_extra_fields_preserved ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_finish_reason_content_filter ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_finish_reason_length ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_finish_reason_stop ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_finish_reason_tool_calls ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_finish_reason_unknown ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_mixed_valid_and_partial_tool_calls ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_arguments_parsed ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_empty_tool_calls_array ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_missing_arguments ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_missing_function ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_missing_function_name ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_missing_id ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_decode_response_tool_call_null_function ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_chat_extra_overrides_typed_controls ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_does_not_inject_stream_options_on_non_streaming ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_injects_stream_options_on_streaming_request ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_preserves_caller_stream_options ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_request_multimodal_image_url_parts ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_restores_max_completion_tokens_key ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_round_trip_preserves_unmodeled_fields ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_with_modified_model ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_encode_writes_openai_chat_typed_controls ... ok
[INFO] [stdout] test codec::openai_chat::tests::test_helper_and_error_paths_cover_remaining_chat_branches ... ok
[INFO] [stdout] test codec::openai_responses::tests::openai_responses_streaming_codec_assembles_from_output_item_done_when_terminal_lacks_output ... ok
[INFO] [stdout] test codec::openai_responses::tests::openai_responses_streaming_codec_ignores_per_token_deltas ... ok
[INFO] [stdout] test codec::openai_responses::tests::openai_responses_streaming_codec_preserves_incomplete_terminal_state ... ok
[INFO] [stdout] test codec::openai_responses::tests::openai_responses_streaming_codec_uses_terminal_snapshot ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_full_response ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_invalid_json ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_minimal_response ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_accepts_anthropic_hint_tool_choice ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_accepts_anthropic_none_tool_choice_object ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_extra_fields ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_input_array_preserves_unparsed_items_in_extra ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_litellm_reasoning_input_item_preserved_and_controls_extracted ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_max_output_tokens ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_openai_controls_typed ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_sglang_extensions_preserved_in_extra ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_with_input_array ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_request_with_input_string ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_extra_fields_preserved ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_function_call_uses_call_id ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_multiple_output_text_items ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_only_reasoning_items ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_status_completed ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_status_failed ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_openai_responses_api_specific_top_level_fields ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_status_incomplete_content_filter ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_status_incomplete_max_output_tokens ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_status_incomplete_no_details ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_usage_mapping ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_decode_response_tool_call_arguments_parsed ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_encode_extra_overrides_typed_controls ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_encode_request_openai_controls_typed ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_encode_round_trip_preserves_unmodeled_fields ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_encode_writes_instructions_and_input ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_encode_writes_max_output_tokens ... ok
[INFO] [stdout] test codec::openai_responses::tests::test_helper_and_error_paths_cover_remaining_responses_branches ... ok
[INFO] [stdout] test codec::request::tests::test_all_types_clone ... ok
[INFO] [stdout] test codec::request::tests::test_all_types_partial_eq ... ok
[INFO] [stdout] test codec::request::tests::test_annotated_llm_request_extra_flatten ... ok
[INFO] [stdout] test codec::request::tests::test_annotated_llm_request_round_trip ... ok
[INFO] [stdout] test codec::request::tests::test_generation_params_all_none_serializes_to_empty ... ok
[INFO] [stdout] test codec::request::tests::test_has_tool_calls_false_empty_vec ... ok
[INFO] [stdout] test codec::request::tests::test_has_tool_calls_false_no_assistant ... ok
[INFO] [stdout] test codec::request::tests::test_has_tool_calls_true ... ok
[INFO] [stdout] test codec::request::tests::test_last_user_message_from_parts ... ok
[INFO] [stdout] test codec::request::tests::test_last_user_message_returns_last ... ok
[INFO] [stdout] test codec::request::tests::test_last_user_message_returns_none_when_absent ... ok
[INFO] [stdout] test codec::request::tests::test_message_assistant_with_tool_calls ... ok
[INFO] [stdout] test codec::request::tests::test_message_content_parts_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_message_content_text_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_message_system_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_system_prompt_from_parts ... ok
[INFO] [stdout] test codec::request::tests::test_message_tool_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_message_user_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_system_prompt_returns_text ... ok
[INFO] [stdout] test codec::request::tests::test_tool_call_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_tool_choice_auto_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_tool_choice_none_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_system_prompt_returns_none_when_absent ... ok
[INFO] [stdout] test codec::request::tests::test_tool_choice_specific_serialization ... ok
[INFO] [stdout] test codec::request::tests::test_tool_definition_serialization ... ok
[INFO] [stdout] test codec::response::tests::test_annotated_llm_response_extra_captures_unmodeled_keys ... ok
[INFO] [stdout] test codec::request::tests::test_tool_choice_required_serialization ... ok
[INFO] [stdout] test codec::response::tests::test_annotated_llm_response_full_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_api_specific_custom_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_api_specific_openai_chat_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_api_specific_openai_responses_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_finish_reason_complete_serializes_to_complete ... ok
[INFO] [stdout] test codec::response::tests::test_annotated_llm_response_minimal_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_failing_mock_codec_demonstrates_non_fatal_pattern ... ok
[INFO] [stdout] test codec::response::tests::test_finish_reason_length_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_finish_reason_tool_use_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_has_tool_calls_false_when_empty_vec ... ok
[INFO] [stdout] test codec::response::tests::test_has_tool_calls_true_when_present ... ok
[INFO] [stdout] test codec::response::tests::test_finish_reason_unknown_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_finish_reason_content_filter_round_trip ... ok
[INFO] [stdout] test codec::response::tests::test_has_tool_calls_false_when_none ... ok
[INFO] [stdout] test codec::response::tests::test_is_complete_false_for_other_variants ... ok
[INFO] [stdout] test codec::response::tests::test_is_complete_true_for_complete ... ok
[INFO] [stdout] test codec::response::tests::test_mock_response_codec_compiles_and_returns_ok ... ok
[INFO] [stdout] test codec::response::tests::test_response_text_extracts_first_text_from_parts ... ok
[INFO] [stdout] test codec::response::tests::test_response_text_returns_none_when_message_is_none ... ok
[INFO] [stdout] test codec::response::tests::test_usage_all_none_deserializes_from_empty ... ok
[INFO] [stdout] test codec::response::tests::test_usage_all_populated_round_trip ... ok
[INFO] [stdout] test codec::streaming::tests::buffers_partial_frames_across_pushes ... ok
[INFO] [stdout] test codec::streaming::tests::decodes_complete_frames_in_one_push ... ok
[INFO] [stdout] test codec::streaming::tests::drops_openai_chat_done_sentinel ... ok
[INFO] [stdout] test codec::streaming::tests::drops_frames_without_data_lines ... ok
[INFO] [stdout] test context::tests::context_state_supports_extensions_events_and_builders ... ok
[INFO] [stdout] test error::tests::test_already_exists_display ... ok
[INFO] [stdout] test context::tests::conditional_guardrail_snapshots_keep_names_and_callbacks_after_deregister ... ok
[INFO] [stdout] test codec::response::tests::test_response_tool_call_json_arguments_round_trip ... ok
[INFO] [stdout] test context::tests::merge_helpers_preserve_global_and_scope_local_priority_order ... ok
[INFO] [stdout] test codec::response::tests::test_response_text_returns_some_for_text_content ... ok
[INFO] [stdout] test codec::streaming::tests::surfaces_final_partial_frame_on_finish ... ok
[INFO] [stdout] test context::tests::global_context_is_a_singleton_handle ... ok
[INFO] [stdout] test codec::streaming::tests::surfaces_parse_errors_with_payload_context ... ok
[INFO] [stdout] test error::tests::test_guardrail_rejected_display ... ok
[INFO] [stdout] test context::tests::scope_stack_tracks_scope_local_registries_and_subscribers ... ok
[INFO] [stdout] test error::tests::test_scope_stack_empty_display ... ok
[INFO] [stdout] test json::tests::test_merge_a_non_object_b_none ... ok
[INFO] [stdout] test error::tests::test_internal_display ... ok
[INFO] [stdout] test json::tests::test_merge_both_non_objects ... ok
[INFO] [stdout] test codec::response::tests::test_api_specific_anthropic_messages_round_trip ... ok
[INFO] [stdout] test error::tests::test_error_is_std_error ... ok
[INFO] [stdout] test error::tests::test_error_debug ... ok
[INFO] [stdout] test error::tests::test_not_found_display ... ok
[INFO] [stdout] test error::tests::test_invalid_argument_display ... ok
[INFO] [stdout] test json::tests::test_merge_a_none_b_non_object ... ok
[INFO] [stdout] test context::tests::scope_stack_rejects_removing_non_top_or_root_scopes ... ok
[INFO] [stdout] test json::tests::test_merge_both_none ... ok
[INFO] [stdout] test json::tests::test_merge_both_objects ... ok
[INFO] [stdout] test json::tests::test_merge_empty_objects ... ok
[INFO] [stdout] test json::tests::test_merge_non_object_a_object_b ... ok
[INFO] [stdout] test json::tests::test_merge_nested_objects ... ok
[INFO] [stdout] test json::tests::test_merge_overlapping_keys ... ok
[INFO] [stdout] test json::tests::test_merge_object_a_non_object_b ... ok
[INFO] [stdout] test json::tests::test_merge_one_none ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_clear ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_empty ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_full_pipeline ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_llm_lifecycle ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_llm_lifecycle_plain_input ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_llm_tool_calls_promoted ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_mark_steps_include_hook_name_and_ancestry ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_merged_tool_observations ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_schema_version ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_scope_filtering ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_skips_empty_mark_payloads ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_source_call_id_correlation_by_name ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_tool_call_id_linking ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_tool_lifecycle ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_full_agent_loop ... ok
[INFO] [stdout] test observability::atif::tests::test_extract_metrics_supports_provider_usage_payloads ... ok
[INFO] [stdout] test observability::atif::tests::test_metrics_extra_captures_unknown_token_usage_keys ... ok
[INFO] [stdout] test observability::atif::tests::test_exporter_user_message_extraction ... ok
[INFO] [stdout] test observability::atif::tests::test_reasoning_content_extracted ... ok
[INFO] [stdout] test observability::atif::tests::test_reasoning_effort_propagated ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_user_step_has_ancestry_no_invocation ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_tool_ancestry_aligned_with_tool_calls ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_invocation_timestamps ... ok
[INFO] [stdout] test observability::atof::tests::invalid_filename_errors_cleanly ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_agent_ancestry ... ok
[INFO] [stdout] test observability::atof::tests::append_mode_preserves_existing_lines ... ok
[INFO] [stdout] test observability::atif::tests::test_trajectory_serde_roundtrip ... ok
[INFO] [stdout] test observability::atof::tests::overwrite_mode_truncates_existing_lines ... ok
[INFO] [stdout] test observability::openinference::tests::grpc_config_requires_a_tokio_runtime ... ok
[INFO] [stdout] test observability::atof::tests::default_config_uses_cwd_append_and_timestamped_filename ... ok
[INFO] [stdout] test observability::atof::tests::subscriber_writes_scope_and_mark_events_as_raw_jsonl ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_tool_ancestry_aligned_out_of_order_completion ... ok
[INFO] [stdout] test observability::openinference::tests::llm_end_with_manual_usage_payload_emits_token_count_attributes ... ok
[INFO] [stdout] test observability::atof::tests::register_deregister_flush_and_shutdown_work_with_runtime_events ... ok
[INFO] [stdout] test observability::openinference::tests::llm_end_with_usage_emits_token_count_attributes ... ok
[INFO] [stdout] test observability::openinference::tests::llm_end_without_usage_omits_token_count_attributes ... ok
[INFO] [stdout] test observability::openinference::tests::atif_lineage_correlates_with_openinference_span_attributes ... ok
[INFO] [stdout] test observability::openinference::tests::config_defaults_and_builder_overrides_are_applied ... ok
[INFO] [stdout] test observability::atof::tests::invalid_output_path_errors_cleanly ... ok
[INFO] [stdout] test observability::openinference::tests::invalid_grpc_headers_are_rejected ... ok
[INFO] [stdout] test observability::openinference::tests::helper_functions_cover_additional_openinference_branches ... ok
[INFO] [stdout] test observability::openinference::tests::llm_end_with_inconsistent_manual_usage_omits_invalid_total_tokens ... ok
[INFO] [stdout] test observability::openinference::tests::llm_end_with_partial_usage_emits_only_present_fields ... ok
[INFO] [stdout] test observability::atof::tests::subscriber_writes_canonical_event_jsonl ... ok
[INFO] [stdout] test observability::atif::tests::test_step_extra_tool_ancestry_does_not_bleed_across_turns ... ok
[INFO] [stdout] test observability::openinference::tests::llm_input_value_omits_request_headers ... ok
[INFO] [stdout] test observability::openinference::tests::orphan_marks_become_zero_duration_spans ... ok
[INFO] [stdout] test observability::openinference::tests::preserves_parent_child_relationships ... ok
[INFO] [stdout] test observability::openinference::tests::output_value_extracts_chat_completion_display_text ... ok
[INFO] [stdout] test observability::openinference::tests::records_span_start_mark_and_end ... ok
[INFO] [stdout] test observability::openinference::tests::scope_end_output_payload_is_exported_to_openinference_attributes ... ok
[INFO] [stdout] test observability::otel::tests::config_defaults_and_builder_overrides_are_applied ... ok
[INFO] [stdout] test observability::openinference::tests::tool_semantic_names_exist_without_input_payload ... ok
[INFO] [stdout] test observability::openinference::tests::output_value_prefers_display_content ... ok
[INFO] [stdout] test observability::otel::tests::helper_functions_cover_additional_otel_branches ... ok
[INFO] [stdout] test observability::otel::tests::invalid_grpc_headers_are_rejected ... ok
[INFO] [stdout] test observability::otel::tests::orphan_marks_become_zero_duration_spans ... ok
[INFO] [stdout] test observability::openinference::tests::grpc_metadata_and_runtime_builder_paths_succeed ... ok
[INFO] [stdout] test observability::otel::tests::preserves_parent_child_relationships ... ok
[INFO] [stdout] test observability::otel::tests::semantic_scope_type_and_span_kind_follow_event_variants ... ok
[INFO] [stdout] test observability::otel::tests::grpc_metadata_and_runtime_builder_paths_succeed ... ok
[INFO] [stdout] test observability::otel::tests::records_span_start_mark_and_end ... ok
[INFO] [stdout] test observability::openinference::tests::llm_input_value_summarizes_tool_call_messages ... ok
[INFO] [stdout] test observability::openinference::tests::pre_epoch_timestamps_round_trip_through_system_time ... ok
[INFO] [stdout] test observability::openinference::tests::semantic_scope_type_and_input_value_follow_event_variants ... ok
[INFO] [stdout] test observability::otel::tests::grpc_config_requires_a_tokio_runtime ... ok
[INFO] [stdout] test observability::otel::tests::pre_epoch_timestamps_round_trip_through_system_time ... ok
[INFO] [stdout] test observability::otel::tests::atif_lineage_correlates_with_otel_span_attributes ... ok
[INFO] [stdout] test observability::openinference::tests::http_config_exports_scope_push_pop_and_marks_without_tokio_runtime ... ok
[INFO] [stdout] test observability::openinference::tests::registered_subscriber_emits_spans_for_scope_push_pop_and_marks ... ok
[INFO] [stdout] test observability::plugin_component::tests::duplicate_component_is_rejected_as_singleton ... ok
[INFO] [stdout] test observability::otel::tests::subscriber_registration_and_provider_lifecycle_methods_work ... ok
[INFO] [stdout] test observability::otel::tests::registered_subscriber_emits_spans_for_scope_push_pop_and_marks ... ok
[INFO] [stdout] test observability::plugin_component::tests::editor_schema_tracks_observability_config_types ... ok
[INFO] [stdout] test observability::plugin_component::tests::atif_completed_top_level_agent_is_evicted_after_write ... ok
[INFO] [stdout] test observability::openinference::tests::subscriber_registration_and_provider_lifecycle_methods_work ... ok
[INFO] [stdout] test observability::plugin_component::tests::unknown_fields_and_bad_values_follow_policy ... ok
[INFO] [stdout] test plugin::tests::test_config_report_has_errors ... ok
[INFO] [stdout] test observability::plugin_component::tests::atif_explicit_options_and_open_agent_teardown_are_written ... ok
[INFO] [stdout] test observability::plugin_component::tests::atif_rejects_unsafe_template_and_ignores_non_top_level_agents ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_reports_failed_restore_when_previous_configuration_cannot_be_restored ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_replaces_previous_configuration_on_success ... ok
[INFO] [stdout] test observability::plugin_component::tests::atif_defaults_create_one_file_per_top_level_agent ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_rolls_back_partial_component_registration_on_failure ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_skips_disabled_components_and_namespaces_multiple_instances ... ok
[INFO] [stdout] test plugin::tests::test_plugin_config_defaults_debug_and_invalid_config_messages ... ok
[INFO] [stdout] test plugin::tests::test_plugin_helper_defaults_and_policy_diagnostics ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registration_context_covers_all_registration_helpers ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registration_context_maps_deregistration_errors ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registration_context_maps_duplicate_registration_errors ... ok
[INFO] [stdout] test plugin::tests::test_plugin_component_helpers_and_serialization_error_variant ... ok
[INFO] [stdout] test observability::otel::tests::provider_builders_cover_success_paths ... ok
[INFO] [stdout] test observability::openinference::tests::provider_builders_cover_success_paths ... ok
[INFO] [stdout] test plugin::tests::test_registration_context_namespace_and_manual_registration_helpers ... ok
[INFO] [stdout] test plugin::tests::test_rollback_registrations_runs_in_reverse_and_ignores_failures ... ok
[INFO] [stdout] test observability::otel::tests::http_config_exports_scope_push_pop_and_marks_without_tokio_runtime ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::default_config_and_component_conversion_cover_public_shape ... ok
[INFO] [stdout] test observability::plugin_component::tests::empty_and_disabled_config_register_nothing ... ok
[INFO] [stdout] test observability::plugin_component::tests::otlp_sections_register_inferred_subscribers_with_full_config ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::editor_schema_tracks_nemo_guardrails_config_types ... ok
[INFO] [stdout] test observability::plugin_component::tests::invalid_shapes_and_strict_policy_are_reported ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_reports_missing_component_during_activation ... ok
[INFO] [stdout] test observability::plugin_component::tests::atof_enabled_writes_jsonl_and_teardown_flushes ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_registers_and_clears_components ... ok
[INFO] [stdout] test observability::plugin_component::tests::default_config_and_component_conversion_cover_public_shape ... ok
[INFO] [stdout] test registry::tests::test_deregister_nonexistent ... ok
[INFO] [stdout] test registry::tests::test_duplicate_error_message ... ok
[INFO] [stdout] test registry::tests::test_empty_registry ... ok
[INFO] [stdout] test plugin::tests::test_initialize_plugins_restores_previous_configuration_after_failed_replacement ... ok
[INFO] [stdout] test registry::tests::test_negative_priorities ... ok
[INFO] [stdout] test observability::plugin_component::tests::disabled_file_sections_do_not_create_files ... ok
[INFO] [stdout] test observability::plugin_component::tests::built_in_registration_is_automatic ... ok
[INFO] [stdout] test registry::tests::test_same_priority_stable ... ok
[INFO] [stdout] test registry::tests::test_sorted_values_caching ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registration_context_supports_guardrail_helpers ... ok
[INFO] [stdout] test registry::tests::test_re_register_after_deregister ... ok
[INFO] [stdout] test plugin::tests::test_plugin_registration_context_registers_and_rolls_back ... ok
[INFO] [stdout] test plugin::tests::test_register_and_deregister_plugin ... ok
[INFO] [stdout] test plugin::tests::test_validate_plugin_config_honors_policy_and_duplicate_singletons ... ok
[INFO] [stdout] test registry::tests::test_many_entries_ordering ... ok
[INFO] [stdout] test observability::plugin_component::tests::initialization_fails_for_invalid_enabled_file_exporters ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::disabled_component_validates_and_initializes_without_runtime_work ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::registration_is_explicit_not_automatic ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::enabled_initialization_fails_fast_until_backend_exists ... ok
[INFO] [stdout] test registry::tests::test_sorted_registry ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::invalid_shapes_and_values_are_reported ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::unknown_fields_follow_policy ... ok
[INFO] [stdout] test shared_runtime::tests::test_conflicting_binding_is_rejected ... ok
[INFO] [stdout] test shared_runtime::tests::test_initialize_binding_claims_process_owner ... ok
[INFO] [stdout] test shared_runtime::tests::test_api_use_rejects_conflicting_owner ... ok
[INFO] [stdout] test plugins::nemo_guardrails::plugin_component::tests::duplicate_component_is_rejected_as_singleton ... ok
[INFO] [stdout] test stream::tests::anthropic_chunk_summary_omits_content_blocks_and_delta_payloads ... ok
[INFO] [stdout] test shared_runtime::tests::test_initialize_binding_rejects_second_binding_identity ... ok
[INFO] [stdout] test shared_runtime::tests::test_runtime_owner_parse_and_display_cover_invalid_tokens ... ok
[INFO] [stdout] test shared_runtime::tests::test_same_binding_same_major_reuses_process_owner ... ok
[INFO] [stdout] test shared_runtime::tests::test_stale_pid_owner_is_replaced ... ok
[INFO] [stdout] test shared_runtime::tests::test_api_use_claims_default_rust_owner ... ok
[INFO] [stdout] test shared_runtime::tests::test_version_validation_binding_resolution_and_invalid_owner_cleanup ... ok
[INFO] [stdout] test stream::tests::openai_responses_chunk_summary_omits_response_output_item_and_delta ... ok
[INFO] [stdout] test stream::tests::unknown_chunk_summary_only_records_receipt ... ok
[INFO] [stdout] test types_tests::atof_event_builders_construct_concrete_events ... ok
[INFO] [stdout] test stream::tests::openai_chat_chunk_summary_keeps_only_compact_metadata ... ok
[INFO] [stdout] test types_tests::event_accessors_cover_scope_tool_llm_and_mark_variants ... ok
[INFO] [stdout] test types_tests::event_json_value_uses_canonical_subscriber_shape ... ok
[INFO] [stdout] test types_tests::handle_constructors_preserve_supplied_metadata ... ok
[INFO] [stdout] test types_tests::llm_request_serializes_explicit_headers_and_content ... ok
[INFO] [stdout] test types_tests::category_profile_wire_empty_accounts_for_annotations ... ok
[INFO] [stdout] test types_tests::base_event_and_flattened_specialized_builders_work ... ok
[INFO] [stderr]      Running tests/integration/api_surface_tests.rs (/opt/rustwide/target/debug/deps/api_surface_integration-c49357f27a7f7e74)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 348 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.76s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_llm_stream_api_covers_success_rejection_and_execution_error_paths ... ok
[INFO] [stdout] test test_global_registry_and_subscriber_wrappers_cover_success_and_duplicates ... ok
[INFO] [stdout] test test_llm_stream_chunk_marks_track_successful_chunks ... ok
[INFO] [stdout] test test_llm_stream_chunk_mark_survives_collector_failure ... ok
[INFO] [stdout] test test_llm_api_emits_sanitized_events_and_covers_error_paths ... ok
[INFO] [stdout] test test_manual_lifecycle_timestamp_overrides ... ok
[INFO] [stdout] test test_scope_registry_and_subscriber_wrappers_cover_success_duplicates_and_missing_scope ... ok
[INFO] [stdout] test test_manual_lifecycle_default_end_timestamps_follow_explicit_starts ... ok
[INFO] [stderr]      Running tests/integration/codec_tests.rs (/opt/rustwide/target/debug/deps/codec_integration-7455b7d4e68a78f1)
[INFO] [stdout] test test_tool_api_emits_sanitized_events_and_covers_error_paths ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test test_clone_and_partial_eq ... ok
[INFO] [stdout] test test_message_content_text_serializes_as_string ... ok
[INFO] [stdout] test test_generation_params_empty ... ok
[INFO] [stdout] test test_has_tool_calls_true ... ok
[INFO] [stdout] test test_has_tool_calls_false_no_assistant ... ok
[INFO] [stdout] test test_has_tool_calls_false_empty_calls ... ok
[INFO] [stdout] test test_last_user_message_basic ... ok
[INFO] [stdout] test test_last_user_message_none ... ok
[INFO] [stdout] test test_message_assistant_content_only ... ok
[INFO] [stdout] test test_message_content_parts_serializes_as_array ... ok
[INFO] [stdout] test test_annotated_llm_request_minimal ... ok
[INFO] [stdout] test test_message_assistant_with_tool_calls ... ok
[INFO] [stdout] test test_extra_field_flatten ... ok
[INFO] [stdout] test test_message_system_roundtrip ... ok
[INFO] [stdout] test test_message_tool_roundtrip ... ok
[INFO] [stdout] test test_message_user_roundtrip ... ok
[INFO] [stdout] test test_mock_codec_decode_encode ... ok
[INFO] [stdout] test test_system_prompt_parts ... ok
[INFO] [stdout] test test_tool_choice_required_serializes_as_string ... ok
[INFO] [stdout] test test_tool_definition_roundtrip ... ok
[INFO] [stdout] test test_tool_call_roundtrip ... ok
[INFO] [stdout] test test_system_prompt_text ... ok
[INFO] [stdout] test test_tool_choice_auto_serializes_as_string ... ok
[INFO] [stdout] test test_tool_choice_specific_serializes_as_object ... ok
[INFO] [stdout] test test_generation_params_partial ... ok
[INFO] [stdout] test test_annotated_llm_request_full_roundtrip ... ok
[INFO] [stdout] test test_system_prompt_none ... ok
[INFO] [stdout] test test_tool_choice_none_serializes_as_string ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration/context_isolation_tests.rs (/opt/rustwide/target/debug/deps/context_isolation_integration-6145f291b042f0a3)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test test_current_scope_stack_differs_across_tasks ... ok
[INFO] [stdout] test test_scope_stack_active_in_task_local ... ok
[INFO] [stdout] test test_propagate_scope_to_thread_returns_correct_stack ... ok
[INFO] [stdout] test test_propagate_scope_to_thread_cross_thread ... ok
[INFO] [stdout] test test_scope_stack_active_false_by_default ... ok
[INFO] [stdout] test test_scope_stack_helpers_cover_lookup_mutation_and_remove_paths ... ok
[INFO] [stdout] test test_scope_stack_active_true_after_explicit_set ... ok
[INFO] [stdout] test test_sync_thread_scope_stack_and_task_scope_remove_use_bound_handle ... ok
[INFO] [stdout] test test_set_thread_scope_stack ... ok
[INFO] [stdout] test test_thread_local_independent_stacks ... ok
[INFO] [stdout] test test_tokio_tasks_isolated ... ok
[INFO] [stdout] test test_two_scope_stacks_are_independent ... ok
[INFO] [stdout] test test_propagate_scope_to_thread_fails_when_inactive ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stderr]      Running tests/integration/middleware_tests.rs (/opt/rustwide/target/debug/deps/middleware_integration-fbc4710228571e34)
[INFO] [stdout] test test_concurrent_intercept_mutations ... ok
[INFO] [stdout] test test_concurrent_register_and_read ... ok
[INFO] [stdout] test test_break_chain_stops_subsequent_intercepts ... ok
[INFO] [stdout] test test_concurrent_register_deregister ... ok
[INFO] [stdout] test test_conditional_guardrail_allows ... ok
[INFO] [stdout] test test_conditional_guardrail_tool_name_filtering ... ok
[INFO] [stdout] test test_execution_intercept_skips_next ... ok
[INFO] [stdout] test test_conditional_guardrail_rejects ... ok
[INFO] [stdout] test test_llm_conditional_guardrail_emits_guardrail_scope ... ok
[INFO] [stdout] test test_duplicate_guardrail_registration_returns_error ... ok
[INFO] [stdout] test test_conditional_rejection_prevents_intercepts ... ok
[INFO] [stdout] test test_empty_chain_passthrough ... ok
[INFO] [stdout] test test_conditional_rejection_prevents_execution ... ok
[INFO] [stdout] test test_llm_stream_start_emits_before_short_circuit_execution_intercept ... ok
[INFO] [stdout] test test_duplicate_intercept_registration_returns_error ... ok
[INFO] [stdout] test test_execution_intercept_calls_next ... ok
[INFO] [stdout] test test_request_intercept_priority_ordering ... ok
[INFO] [stdout] test test_execution_intercept_modifies_args ... ok
[INFO] [stdout] test test_conditional_guardrail_first_rejection_wins ... ok
[INFO] [stdout] test test_full_pipeline_integration ... ok
[INFO] [stdout] test test_scope_local_and_global_guardrail_merge_priority ... ok
[INFO] [stdout] test test_llm_start_emits_before_short_circuit_execution_intercept ... ok
[INFO] [stdout] test test_llm_execution_intercept_chain ... ok
[INFO] [stdout] test test_llm_request_intercept_transforms ... ok
[INFO] [stdout] test test_standalone_conditional_execution_passes ... ok
[INFO] [stdout] test test_empty_request_intercept_chain ... ok
[INFO] [stdout] test test_no_break_chain_runs_all_intercepts ... ok
[INFO] [stdout] test test_llm_conditional_guardrail_rejects ... ok
[INFO] [stdout] test test_re_registration_at_different_priority_re_sorts ... ok
[INFO] [stdout] test test_execution_intercept_chain_ordering ... ok
[INFO] [stdout] test test_standalone_conditional_execution_rejects ... ok
[INFO] [stdout] test test_sanitize_guardrail_priority_ordering ... ok
[INFO] [stdout] test test_sanitize_guardrails_pipe_data ... ok
[INFO] [stdout] test test_scope_local_and_global_execution_intercept_merge ... ok
[INFO] [stdout] test test_deregister_nonexistent_returns_false ... ok
[INFO] [stdout] test test_scope_local_execution_intercept_cleanup ... ok
[INFO] [stdout] test test_scope_local_guardrail_lifecycle ... ok
[INFO] [stdout] test test_tool_conditional_guardrail_emits_guardrail_scope ... ok
[INFO] [stdout] test test_response_sanitize_guardrails_pipe ... ok
[INFO] [stdout] test test_deregister_removes_from_chain ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration/pipeline_tests.rs (/opt/rustwide/target/debug/deps/pipeline_integration-93c450604dd09380)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test test_decode_runs_before_intercepts ... ok
[INFO] [stdout] test test_decode_error_propagates ... ok
[INFO] [stdout] test test_encode_runs_after_intercepts ... ok
[INFO] [stdout] test test_annotated_intercept_receives_both ... ok
[INFO] [stdout] test test_explicit_codec_param_overrides ... ok
[INFO] [stdout] test test_encode_merge_not_replace ... ok
[INFO] [stdout] test test_request_codec_populates_annotated_request ... ok
[INFO] [stdout] test test_response_codec_none_when_no_codec ... ok
[INFO] [stdout] test test_response_codec_populates_annotated_response ... ok
[INFO] [stdout] test test_stream_path_also_decodes ... ok
[INFO] [stdout] test test_response_codec_failure_non_fatal ... ok
[INFO] [stdout] test test_shared_helper_both_paths ... ok
[INFO] [stdout] test test_stream_response_codec_populates_annotated_response ... ok
[INFO] [stdout] test test_unified_chain_priority_order ... ok
[INFO] [stdout] test test_no_codec_annotated_intercept_receives_none ... ok
[INFO] [stdout] test test_legacy_intercept_backward_compat ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration/scope_local_tests.rs (/opt/rustwide/target/debug/deps/scope_local_integration-8d1e5cac9f9c73a5)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_name_coexistence_global_and_scope_local ... ok
[INFO] [stdout] test test_scope_local_subscriber ... ok
[INFO] [stdout] test test_scope_local_guardrail_registration_and_execution ... ok
[INFO] [stdout] test test_scope_isolation_between_stacks ... ok
[INFO] [stdout] test test_nested_scope_inheritance ... ok
[INFO] [stdout] test test_scope_local_conditional_execution_guardrail ... ok
[INFO] [stdout] test test_auto_cleanup_on_scope_pop ... ok
[INFO] [stdout] test test_priority_merge_global_and_scope_local ... ok
[INFO] [stderr]      Running tests/integration/stream_tests.rs (/opt/rustwide/target/debug/deps/stream_integration-cfcc8af32ebff4dd)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_stream_wrapper_empty_stream ... ok
[INFO] [stdout] test test_stream_wrapper_error_skips_collector_and_finalizes_immediately ... ok
[INFO] [stdout] test test_stream_wrapper_collector_receives_all_chunks ... ok
[INFO] [stdout] test test_stream_wrapper_basic_chunks ... ok
[INFO] [stdout] test test_stream_wrapper_emits_end_event ... ok
[INFO] [stdout] test test_stream_wrapper_drop_emits_end_event_for_partial_stream ... ok
[INFO] [stdout] test test_stream_wrapper_end_event_contains_intercepted_response ... ok
[INFO] [stdout] test test_stream_wrapper_passthrough ... ok
[INFO] [stdout] test test_stream_wrapper_finalizer_called_on_exhaustion ... ok
[INFO] [stdout] test test_stream_wrapper_error_emits_end_event_on_first_error_poll ... ok
[INFO] [stdout] test test_stream_wrapper_error_propagation ... ok
[INFO] [stdout] test test_stream_wrapper_collector_error_terminates_stream ... ok
[INFO] [stdout] test test_stream_wrapper_json_chunks ... ok
[INFO] [stdout] test test_stream_wrapper_single_chunk ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests nemo_relay
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197", kill_on_drop: false }`
[INFO] [stdout] 32ba799711fb590b9f2259639c3b50354528249950e6d1af74ca5ec7d53b9197
